package behavior.template;

/**
 * Created by lie on 2017/11/2.
 * 抽象模板
 *  模拟爆发操作
 */
public abstract class Template {
    /**
     * 爆发操作
     * 定义成final，不给子类修改
     */
    public final void explosive(){
        shiPin();
        longCd();
        shenQi();

        hook();
    }

    /**
     * 钩子
     * 作为预备操作，有需要就用
     */
    protected void hook(){}

    /**
     * 开启神器技能
     */
    protected abstract void shenQi();

    /**
     * 开启长cd技能
     */
    protected abstract void longCd();

    /**
     * 开启饰品
     */
    protected abstract void shiPin();
}
